﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
using TP2.Lib;

namespace TP2.Persistencia
{
    public class PersistenciaBinaria
    {
        const string MISION2_PATH = "C:/Algo1942/Config/1942Full_save.dat";
        

       public static void GuardarEstadoDeLaMision(Mision unaMision)
       {
            string archivo = MISION2_PATH;

            BinaryFormatter formatter = new BinaryFormatter();
            using (Stream stream = File.Create(archivo))
            {
                formatter.Serialize(stream, unaMision);
            }

        }

        public static Mision RecuperarEstadoMision()
        {
            string archivo = MISION2_PATH;
            Mision mision;

            BinaryFormatter formatter = new BinaryFormatter();
            using (Stream stream = File.OpenRead(archivo))
            {
                mision = (Mision)formatter.Deserialize(stream);

                //// observamos la info recuperada
                //int i = 0;
                //foreach (AvionJugador avionAliado in mision.ElementosAliados)
                //{ 
                //    i++;
                //    Console.WriteLine("Avion Aliado " + i);
                //    Console.WriteLine("Cantidad de Armas: " + avionAliado.Armas.Count.ToString());
                //    Console.WriteLine("            Tipos: " + avionAliado.Armas.ToArray()[0].GetType().ToString().Split('.')[2]);
                //    Console.WriteLine("                 : " + avionAliado.Armas.ToArray()[1].GetType().ToString().Split('.')[2]);
                //    Console.WriteLine("                 : " + avionAliado.Armas.ToArray()[2].GetType().ToString().Split('.')[2]);
                //    Console.WriteLine("                 : " + avionAliado.Armas.ToArray()[3].GetType().ToString().Split('.')[2]);
                                        
                //}
                //Console.WriteLine("Dimenciones: ( {0}, {1}, {2})", mision.Dimensiones[0].ToString(), mision.Dimensiones[1].ToString(), mision.Dimensiones[2].ToString());
                ////Console.WriteLine(mision.ElementosAliados);
                ////Console.WriteLine(mision.ElementosEnemigos);
                ////Console.WriteLine(mision.ElementosEstaticos);
                //Console.ReadKey();
            }
            return mision;
        }
    }
}
